package com.springboot.service;

import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import com.springboot.dto.WxUserInfoDTO;
import com.springboot.enums.WxUserRole;
import com.springboot.vo.PageVO;
import com.springboot.vo.WxUserLoginVO;
import com.springboot.vo.WxUserVO;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 * @author: lzh
 */
public interface WxUserService {

    /**
     * @descrition:  住户获取个人信息
     * @return : com.springboot.vo.WxRegidentVO
     */
    WxUserVO getWxUserInfo();

    /**
     * @descrition:  获取用户信息生成二维码
     * @return : byte[]
     */
    byte[] createQrCode();


    /**
     * @descrition:  保存/修改用户个人信息
     * @param wxUserInfoDTO :
     * @return : void
     */
    void saveWxUserInfo(WxUserInfoDTO wxUserInfoDTO);

    /**
     * @descrition:  微信登录
     * @param openid :
     * @return : com.springboot.vo.WxUserLoginVO
     */
    WxUserLoginVO wxLogin(String openid);

    /**
     * @descrition:  微信注册
     * @param userInfo :
     * @return : com.springboot.entity.WxUser
     */
    WxUserLoginVO wxRegister(WxMaUserInfo userInfo);

    /**
     * @descrition:  后台获取用户列表
     * @param pageNum :
     * @param pageSize :
     * @param keywords :
     * @return : com.springboot.vo.WxUserListVO
     */
    PageVO getWxUserList(Integer pageNum, Integer pageSize, String keywords, WxUserRole role);

    /**
     * @descrition:  后台设置检查人员
     * @param id :
     * @return : void
     */
    void setProsecutor(Integer id);

    /**
     * @descrition:  后台设置账号锁定
     * @param id :
     * @return : void
     */
    void setLock(Integer id);

    /**
     * @descrition:  获取微信用户execl表格
     * @return : org.apache.poi.hssf.usermodel.HSSFWorkbook
     */
    HSSFWorkbook dowloadExecl();
}
